/**
 * @fileOverview 控制台输出
 * @author <a href="mailto:lexloo@126.com">lexloo</a>
 */
(function() {
	if (typeof com.firefly.Console != 'undefined') {
		return;
	}

	/**
	 * @static
	 * @class 控制台操作类
	 * @author <a href="mailto:lexloo@126.com">lexloo</a>
	 */
	com.firefly.Console = function() {
		$Ready(this.initialize.bind(this));
	};

	$Lang.apply(com.firefly.Console.prototype, {
		initialize : function() {
			this.el = $E( {
				tag : 'div',
				className : 'x-console'
			});

			$Dom.getBody().appendChild(this.el);
			this.clear();
		}
	});

	/**
	 * 添加输出对象，如果是Element，直接输出，否则封装到div中
	 * 
	 * @param obj
	 *            输出对象
	 * @param cls
	 *            属性类
	 */
	com.firefly.Console.prototype.append = function(obj, cls) {
		var domEl = $E( {
			tag : 'div',
			children : obj
		});

		if (cls) {
			$Dom.addClass(domEl, cls);
		}

		this.el.appendChild(domEl);
	};

	/**
	 * 清除控制台内容
	 */
	com.firefly.Console.prototype.clear = function() {
		with (this.el) {
			while (firstChild) {
				removeChild(firstChild);
			}
		}
	};

	/**
	 * com.firefly.Console的快捷访问
	 */
	$Console = com.firefly.Console;
})();
